

package Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.JMenu;
import javax.swing.JMenuItem;

import Modelo.Liga;
import Vista.VistaPrincipal;

public class ControladorVistaPrincipal implements ActionListener{
    private VistaPrincipal vista;
    private Liga liga;
    private boolean genero;
    public ControladorVistaPrincipal() {
        vista=new VistaPrincipal();
        vista.addlistener(this);
        vista.setVisible(true);
        try {
			liga= new Liga();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        genero=false;
    }

    private boolean equiposPar(int size) {
    	if((size!=0) && (size%2)==0)
    		return true;
    	else
    		return false;
	}


    public void actionPerformed(ActionEvent ae) {
        if(ae.getActionCommand().equals("arbitro")){
            new ControladorVistaRegistrarArbitro(liga);
        }
        else if(ae.getActionCommand().equals("equipo")){
            new ControladorVistaRegistrarEquipo(liga);
        }
        else if(ae.getActionCommand().equals("generar")){
        	System.out.println(liga.getArbitro().size()+" "+(liga.getEquipo().size()/2));
        	if(equiposPar(liga.getEquipo().size()))
        			if(liga.getArbitro().size()>=(liga.getEquipo().size()/2)){
			            liga.generarCombinacion();
			            liga.generarResultados();
			            vista.mostrarMensaje("Los Resultados se generaron exitosamente");
			            genero=true;
        			}
        			else
        				vista.mostrarMensaje("El numero de arbitros debe ser mayor o igual al numero de partidos por fecha ");
        	else
				vista.mostrarMensaje("El numero de equipos registrados debe ser par");
        }
        else if(ae.getActionCommand().equals("calendario")){
        	if(genero)
        		new ControlVistaCalendario(liga.getFechas());
        	else
        		vista.mostrarMensaje("Debe generar la temporada");
        }
        else if(ae.getActionCommand().equals("posiciones")){
        	if(genero){
        		liga.ordenarEquipos();
                new ControlVistaPosiciones(liga.getEquipo());
        	}
        	else
        		vista.mostrarMensaje("Debe generar la temporada");
        	
        }
        else if(ae.getActionCommand().equals("salir")){
        	System.exit(0);
        }
        else{
            
        }
    }
}
